package Controlador;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

import Modelo.*;
import Vistas.VentanaEquipo;
/**
 *
 * @author Junior
 */
public class ControladorVentanaEquipo implements ActionListener{
    
    VentanaEquipo miEquipo;
    Liga miLiga;
    boolean verificarArchivos[] = new boolean[4];//un arreglo de bool para validar los diferentes archivos cargados de jugadores
    public ControladorVentanaEquipo(Liga l){//metodo que iniciliza la pantalla Equipo
    
        miEquipo = new VentanaEquipo();
        miEquipo.setLocationRelativeTo(null);
        miEquipo.setVisible(true);
        miEquipo.agregarListener(this);
        miLiga = l;
        for(int i = 0;i < verificarArchivos.length;i++)
			verificarArchivos[i] = false;//los inicializamos en falso
        
        
    }

    public Jugador[] cargarJugadores(String doc) throws FileNotFoundException, IOException{

    	Jugador[] arrayJugador = new Jugador[9];
        File Archi;
        DataInputStream lec;
        Archi=new File(doc);
        lec=new DataInputStream(new FileInputStream(Archi));
        
    	
        for(int i=0; i<arrayJugador.length; i++){
    	    
        arrayJugador[i] = new Jugador();
        arrayJugador[i].setNombre(lec.readLine());
        arrayJugador[i].setApellido(lec.readLine());
        arrayJugador[i].setCedula(lec.readLine());
        arrayJugador[i].setFechaN(lec.readLine());
        arrayJugador[i].setPosicion(lec.readLine());
      
     }

    return arrayJugador;
}
    public void cargarEquipo(String ruta) throws FileNotFoundException, IOException
	{
		Equipo equipo = new Equipo();
		
		equipo.setNombre(miEquipo.getjTextNombre().getText().toString());
		equipo.setCodigo(miEquipo.getjTextCodigo().getText().toString());
		equipo.setAnoFundacion(Integer.parseInt(miEquipo.getjTextAnoFund().getText().toString()));
		equipo.setCiudad(miEquipo.getjTextCiudad().toString());
		
		Jugador []jugadores = null;
		
		jugadores = cargarJugadores(ruta);
		
		equipo.setJugadores(jugadores);//recibe el arreglo de jugadores previamente cargado por el txt
		
		miLiga.agregarEquipo(equipo);
	}
	
    @Override
    public void actionPerformed(ActionEvent arg0) {
		// TODO Auto-generated method stub
		if(arg0.getActionCommand().equals("Agregar"))
	    {
                        //Validacion necesaria para que no agregue si hay campos vacios
			if(miEquipo.getNombre().toString().equals("") || miEquipo.getCodigo().toString().equals("")||miEquipo.getanoFundacion().toString().equals(""))
		    	miEquipo.mostrarMensaje("Faltan Datos");
			else
			try {
				
				String str = "src/Lista Jugadores " + (miEquipo.getjComboJugadores().getSelectedIndex() + 1) + ".txt";
	
				if(verificarArchivos[miEquipo.getjComboJugadores().getSelectedIndex()] == false)
				{
				    verificarArchivos[miEquipo.getjComboJugadores().getSelectedIndex()] = true;
				    cargarEquipo(str);
				    miEquipo.limpiarCampos();
				    miEquipo.mostrarMensaje("Equipo cargado con exito!");
				}
				else
					miEquipo.mostrarMensaje("Ya este archivo se cargo!");
			}
			catch (FileNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	    }
		else miEquipo.dispose();
	}
    
}